Amazon FSx for NetApp ONTAP で xxGB以上のファイルを保存できないようにする設定方法を教えてください
困っていた内容
Amazon FSx for NetApp ONTAP(以降FSx for ONTAP) において xxGB 以上のファイルを保存できないようにするための設定は実現可能ですか。
実現可能であれば、設定方法を教えてください。
どう対応すればいいの?
qtree を使用することで、「xxGB 以上のファイルを保存できないようにする」のように、フォルダレベルでのクォータ設定を行うことが可能です。
やってみた
今回の検証例として、1GB まで保存できる qtree の設定がされたフォルダ(ディレクトリ)を作成して動作確認を行いました。
検証環境の準備
[Amazon FSx] -> [ファイルシステムを作成] -> [Amazon FSx for NetApp ONTAP] より、FSx for ONTAP 側は下記の設定内容にて検証を行いました。
ファイルシステム作成 | 設定内容 |
---|---|
作成方法 | クイック作成 |
ファイルシステム名 - オプション | 任意の名前を入力してください (注: 最大 256 個の Unicode 文字、空白、数字、および + - = . _ : /) |
デプロイタイプ | シングルAZ |
SSD ストレージ容量 | 1024 (最小) |
Virtual Private Cloud (VPC) | デフォルト VPC |
ストレージ効率 | 無効 |
本検証を行う上では、上記の FSx for ONTAP の設定以外にも NFS マウント を行う EC2 インスタンスの作成や、EC2 インスタンスから NFS 接続(TCP:2049)を許可するセキュリテイグループの設定等を実施する必要があります。
詳しい設定方法に関しては、関連の記事がありますので必要に応じて下記弊社ブログや AWS 公式ドキュメントをご確認ください。
ONTAP CLI - 容量制限設定
管理エンドポイントにログイン
[ec2-user@ip-***-**-**-*** ~]$ ssh fsxadmin@<管理エンドポイントIPアドレス>
qtree 作成
# qtree の登録状況 ::> volume quota report This table is currently empty. # qtree 作成 ::> volume qtree create -vserver fsx -volume vol1 -qtree test-qtree1 -security-style unix
事前確認(qtree 設定前)
qtree 設定前の事前確認として、例えば 2GB のファイルを作成できるか確認
[ec2-user@ip-***-**-**-*** fsx]$ pwd /home/ec2-user/fsx [ec2-user@ip-***-**-**-*** fsx]$ ls file.csv file.md file.txt test-qtree1 [ec2-user@ip-***-**-**-*** fsx]$ cd test-qtree1/ [ec2-user@ip-***-**-**-*** test-qtree1]$ sudo dd bs=1M count=2048 if=/dev/zero of=testfile1.txt 2048+0 レコード入力 2048+0 レコード出力 2147483648 バイト (2.1 GB) コピーされました、 14.8502 秒、 145 MB/秒 [ec2-user@ip-***-**-**-*** test-qtree1]$ ls -l 合計 2105420 -rw-r--r-- 1 root root 2147483648 2月 2 07:42 testfile1.txt # 単位(G)で分かりやすく確認 [ec2-user@ip-***-**-**-*** test-qtree1]$ ls -lh 合計 2.1G -rw-r--r-- 1 root root 2.0G 2月 2 07:42 testfile1.txt
容量制限設定(1GB まで)
# 容量制限設定(1GBまで) ::> volume quota policy rule create -vserver fsx -policy-name default -volume vol1 -type tree -target "" -disk-limit 1GB
qtree 有効化
# qtree 有効化 ::> volume quota on -vserver fsx -volume vol1 -foreground true # 有効化確認 ::> volume quota report Vserver: fsx ----Disk---- ----Files----- Quota Volume Tree Type ID Used Limit Used Limit Specifier ------- -------- ------ ------- ----- ----- ------ ------ --------- vol1 test-qtree1 tree 1 4.02GB 1GB 3 - test-qtree1 vol1 tree * 0B 1GB 0 - * 2 entries were displayed.
事後確認(qtree 設定後)
# qtree 設定確認 [ec2-user@ip-***-**-**-*** test-qtree1]$ sudo dd bs=1M count=2048 if=/dev/zero of=testfile1.txt dd: 出力ファイル `testfile1.txt` を閉じています: No space left on device [ec2-user@ip-***-**-**-*** test-qtree1]$ ls -l 合計 1048572 -rw-r--r-- 1 root root 1100890112 2月 2 08:10 testfile1.txt [ec2-user@ip-***-**-**-*** test-qtree1]$ ls -lh 合計 1.0G -rw-r--r-- 1 root root 1.1G 2月 2 08:10 testfile1.txt
まとめ
qtree の設定により、1GB を超えるファイルとして、例えば 2GB のファイルを書き込もうとするとエラーにより、書き込むことができないことを確認しました。
フォルダレベルでのクォータ(容量制限)設定手順例では、「Disk quota exceeded」というメッセージが表示されていますが、本検証ではこちらのメッセージは確認できませんでした。
しかしながら、本検証の「事後確認(qtree 設定後)」の結果が、フォルダレベルでのクォータ(容量制限)設定手順例で示されている実行結果と同様な内容であることについて確認することができました。
参考資料
- qtreeとは
qtreeとは
qtreeとは、論理的に定義されたファイル システムで、FlexVol内のルート ディレクトリに特別なサブディレクトリとして作成できます。
ボリュームごとに最大4995個のqtreeを作成できます。
ストレージ システム全体では無制限に作成できます。ボリューム内のデータの管理およびパーティショニングを行うためにqtreeを作成できます。
- フォルダレベルのクォータ(qtree)
qtreeを使用することでフォルダレベルでのクォータ設定ができる
ユーザ単位、グループ単位のクォータとツリー単位のクォータが設定できる